//
//  ViewController.m
//  MetalTrail
//
//  Created by kuangxianming on 2023/3/17.
//

#import "ViewController.h"
#import <Metal/Metal.h>
#import <MetalKit/MetalKit.h>

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    //获取设备
    id<MTLDevice> device = MTLCreateSystemDefaultDevice();
    if (device == nil) {
        NSLog(@"don't support metal !");
        return;
    }
    
    //渲染队列
    id<MTLCommandQueue> queue = device.newCommandQueue;
    
    // 添加渲染界面
    MTKView * mtkView = [[MTKView alloc] initWithFrame:self.view.frame device:device];
    [self.view addSubview:mtkView];
    
    /*
     我们配置好 MTLDevice，MTLCommandQueue 和 MTKView 之后，我们开始准备需要渲染到界面上的内容了，就是要塞进队列中的缓冲数据 MTLCommandBuffer 。
     简单的流程就是先构造 MTLCommandBuffer ，再配置 CommandEncoder ，包括配置资源文件，渲染管线等，再通过 CommandEncoder 进行编码，最后才能提交到队列中去。
     */
    
}


@end
